As one of non-volatile semiconductor memories, there is known a NAND cell type flash memory. This NAND cell type flash memory has a memory cell array formed of multiple NAND cell units. Each NAND cell unit is formed of multiple memory cell connected in series and two selection transistors connected to opposite ends of the series. The threshold voltage level of the erased state of the memory cell represents data “1”. At data write time, electrons are injected into its floating gate, so that its threshold voltage level is set to a value representing data “0”. As to the NAND cell type flash memory, at write time, only moving the threshold voltage from low to high is possible, and the opposite movement (moving the threshold voltage from high to low) can be performed by erase operation in a block unit.